iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 16
0
IoT

玩玩 BLE系列 第 16

[Day 16] BLE 封包監聽工具(Packet Sniffer)

  • 分享至 

  • xImage
  •  

監聽(或稱嗅探,英文:Sniffering)
就是以第三方的角色來獲取資訊。
看起來好像只有壞人才會做這件事,
其實不然,
封包監聽工具常常可用來偵測通訊是否異常,
有時候也是個不錯的除錯工具。

在網路通訊中最常聽到的監聽工具應該就是 Wireshark 了,
BLE 的開發工具中,
目前我知道的是 Nordic nRF Sniffer for Bluetooth LETI SmartRF Protocol Packet Sniffer
TI 的 Sniffer有兩種版本,但我還不清楚兩者功能的差別,
這次要用的是 PACKET-SNIFFER,
馬上就用這款工具來監聽手機怎麼和開發板來溝通吧。

準備工具

硬體

軟體

  • Packet Sniffer.exe
  • sniffer_fw_cc2540_usb.hex(需要使用cc debugger燒錄至CC2540,一般來說網路上買的CC2540 USB Dongle都預燒這個韌體)

操作方法

首先開啟Packet Sniffer.exe後選擇"Bluetooth Low Energy",
下方就會顯示可支援此封包監聽的硬體裝置,
接著按下"Start"
Start

此時會跳出另一個視窗,這就是用來看封包的主要畫面,
下面有幾個標籤頁,我介紹這次會用到的,
軟體會自動偵測USB Dongle並顯示到第一個標籤頁"Capturing device",
Capturing Device

接著第二個標籤頁"Radio Configuration",
之前有說過BLE共有三個廣播通道,#37、#38和#39,
這裡就是用來指定要監聽哪一個通道,
Radio Configuration

硬體和軟體都設定完成後,就可以點上方的播放鍵開始抓取空氣中的封包,
我們把抓取的結果和程式碼放在一起來做比對,
可以發現我抓到了四筆廣播封包,
每個封包的間隔都約1秒左右,符合程式碼設定的廣播區間,
這四個廣播封包裡面的AdvData也和程式碼中的advertData陣列中的資料一致。
Adv Data

接下來這個步驟會比較麻煩一點,
手機和開發板在進行藍牙連接過程中,
會先在廣播頻道發現彼此,
接著溝通好連接參數後開始跳頻,
監聽器也要跟上他們的節奏才能抓到所有的封包,
由於廣播頻道有三個,
Packet Sniffer 一次只能監聽一個頻道,
中獎機率有三成三,不高也不低,
反正多試幾次就會中了,
或是一次放三個USB Dongle分別監聽三個廣播頻道,
又或者是讓開發板只在某一個頻道上廣播。
下圖是監聽工具攔截到手機發起的連線請求以及連接參數等,
連線後手機和開發板之間還會再同步一些Service之類的訊息,這我就先跳過了。
Connection Request

完成手機和開發板的連線後,
從監聽工具可以看出來手機和開發板之間頻繁的在發送連接事件,
這就是無線通訊保持連線的真面目。
Connection

最後我從手機端用Lightblue 發送0x04的指令到板子上,
(這邊會有讀取的請求是因為Lightblue 的關係,若改用其他APP可能就不會有了。)
Screenshot
依序對封包稍微解釋一下:

  • Packet Number #1750
    -Master to Slave(手機對板子)
    -寫入請求
    -寫入的目的:0x1E
    -寫入資料:0x04
  • #1753
    -Slave to Master
    -寫入回應
    -回應結果:成功
  • #1754
    -Master to Slave
    -讀取請求
    -讀取目標:0x1E
  • #1757
    -Slave to Master
    -讀取的回應
    -回應結果:0x04
    Write Request

從以上實驗得知,
封包監聽工具能輕易的把裝置之間的通訊都顯示出來,
這時才發現到自己開發的無線通訊裝置,
在駭客的眼中是多麼的赤裸裸。
因此通訊的加密非常重要,
千萬不要使用未加密的訊息來進行通訊,
以免重要的訊息內容或是指令編碼格式被看光光。


上一篇
[Day 15] 用手機控制LED燈
下一篇
[Day 17] TI-RTOS 執行緒(Thread)
系列文
玩玩 BLE27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言